package com.ruoyi.car.controller.admin.carinfo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.car.entity.CarInfoPhoto;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Author wy
 * @Description TODO
 * @Date 2023/6/12 15:23
 * @Version 1.0
 */
@Getter
@Setter
@ToString
public class CarInfoAddReq {
    /**
     * 省份
     */
    @NotBlank(message = "省份不能为空")
    private String province;

    /**
     * 车牌号
     */
    @NotBlank(message = "车牌号为空")
    @Length(min = 7,max = 8,message = "车牌号长度只是7位或8位字符")
    private String carNo;

    /**
     * 门店ID（部门ID）
     */
    @NotNull(message = "门店不能为空")
    private Long deptId;

    /**
     * 车型id(car_model表)
     */
    @NotNull(message = "车型不能为空")
    private Long modelId;

    /**
     * 品牌
     */
    @NotBlank(message = "品牌不能为空")
    private String brand;

    /**
     * 客户编号
     */
    @NotNull(message = "客户不能为空")
    private Long customerId;

    /**
     * 联系人姓名
     */
    @NotBlank(message = "联系人姓名不能为空")
    private String contactName;

    /**
     * 联系号码
     */
    @NotBlank(message = "联系号码不能为空")
    private String contactPhone;

    /**
     * 车架号
     */
    private String vin;

    /**
     * 发动机编号
     */
    private String engineNo;

    /**
     * 到店汽车的里程数
     */
    @NotNull(message = "到店汽车的里程数不能为空")
    private Integer arrivalMileage;

    /**
     * 下次保养里程
     */
    @NotNull(message = "下次保养里程不能为空")
    private Integer nextMileage;

    /**
     * 年检到期时间
     */
    @NotNull(message = "年检到期时间不能为空")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date inspectionDate;

    /**
     * 保险期时间
     */
    @NotNull(message = "保险期时间不能为空")
    @JsonFormat(pattern="yyyy-MM-dd")
    private Date insuranceDate;

    /**
     * 是否新能源(通用字典new_energy_vehicles)
     */
    @NotBlank(message = "是否新能源汽车不能为空")
    private String newEnergyVehicles;

    /**
     * 保险公司
     */
    private String insuranceCompany;

    /**
     * 其它动态扩展属性
     */
    private String attributes;

    /**
     * 备注
     */
    private String remark;

    /**
     * 动态扩展属性集合
     */
    private List<CarInfoProperties> attributesList;

    /**
     * 汽车图片
     */
    private List<CarInfoPhotoReq> carInfoPhotoList;
}
